﻿@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <title>CadastroGrupoConta</title>
    <style type="text/css">
        #grupo
        {
            width: 700px;
            height: 100px;
            padding: 20px 0;
            text-align: center;
            font-size: 1.5em;
        }
    </style>
</head>
<body>
    <div id="grupo">
        @using (Html.BeginForm("CadastroGrupoConta", "GrupoDespesa", FormMethod.Post, new { id = "formgrupo" }))
            {
            @Html.ValidationSummary(true)                                
            <div class="editor-label" style="width: 150px;">
                <label for="NomeGrupo">
                    Nome do Grupo:
                </label>
            </div>
            <div class="editor-field">
                @Html.TextBox("NomeGrupo", string.Empty, new { style = "width: 400px", @class = "obrigatorio" })
                @Html.ValidationMessage("NomeGrupo")
            </div>
            <div class="editor-field" style="float: right; padding-right: 130px; margin-top: 15px;">
                <input type="submit" value="Gravar" id="gravar-grupo" />
                <input type="button" value="Cancelar" id="cancelar-grupo" />
            </div>
            }
    </div>
    <script type="text/javascript">
        $(function () {
            $.validator.unobtrusive.parse($('#formgrupo'));
            $('#NomeGrupo').rules("add", { required: true, messages: { required: '* Obrigatório!'} });
            $('#NomeGrupo').val('');
            $('#NomeGrupo').focus();
        });
        $('#formgrupo').submit(function (e) {
            if ($('#formgrupo').valid()) {
                e.preventDefault();
                showLoading();
                $.ajax({
                    url: '@Url.Action("CadastroGrupoConta", "GrupoDespesa")',
                    type: 'POST',
                    dataType: 'json',
                    data: { nomeGrupo: $('#NomeGrupo').val() },
                    error: function () {
                        alert('Houve um erro na requisição dos dados!\nPor favor, entre em contato com o Administrador do seu sistema.');
                        hideLoading();
                    },
                    success: function (data) {
                        if (data.gravou) {
                            var comboGrupo = $('#GrupoDespesaId');
                            comboGrupo.addClass('loading').attr('disabled', 'disabled').val('');
                            $.get('@Url.Action("CarregaComboGrupo", "GrupoDespesa")', function (dados) {
                                if (dados != undefined) {
                                    comboGrupo.empty();
                                    $.each(dados.Data, function (index, grupo) {
                                        comboGrupo.append('<option value="' + grupo.Value + '">' + grupo.Text + '</option>');
                                    });
                                    comboGrupo.val(data.idGrupo);
                                    comboGrupo.removeAttr('disabled');
                                }
                            });
                            var combo = $('#SubGrupoDespesaId');
                            combo.addClass('loading').attr('disabled', 'disabled').val('');
                            $.get('@Url.Action("CarregaComboSubGrupo", "GrupoDespesa")', { id: data.idGrupo }, function (dados) {
                                if (dados != undefined) {
                                    combo.empty();
                                    $.each(dados.Data, function (index, subgrupo) {
                                        combo.append('<option value="' + subgrupo.Value + '">' + subgrupo.Text + '</option>');
                                    });
                                    combo.removeAttr('disabled');
                                }
                            });
                            $.fancybox.close();
                            hideLoading();
                        }
                    },
                    statusCode: {
                        500: function () {
                            alert('ERROR TYPE: 500 Internal Server Error\n\nHouve um erro na resposta do servidor.\nPor favor, entre em contato com o Administrador do seu sistema.');
                            hideLoading();
                        },
                        404: function () {
                            alert('ERROR TYPE: 404 Not Found\n\nA URL requisitada não existe.\nPor favor, entre em contato com o Administrador do seu sistema.');
                            hideLoading();
                        }
                    }
                });
            }
        });
        $('#cancelar-grupo').click(function (e) {
            e.preventDefault();
            $.fancybox.close();
        });
    </script>
</body>
</html>
